//
// Created by zuo on 2024/6/29.
// 题目链接： https://www.lanqiao.cn/problems/1265/learning/?page=1&first_category_id=1&problem_id=1265
//

#include<iostream>
#include<algorithm> // sort

using namespace std;
// const int N = 500001;
const int M = 5e5 + 1; //500001

int main()
{
    // C实现

    // int n;
    // scanf("%d", &n);
    // int arr[N];
    // for (int i = 0; i < n; i++)
    // {
    //     scanf("%d", &arr[i]);
    // }
    // sort(arr, arr + n); // 默认升序排列
    // for (int i = 0; i < n; i++)
    // {
    //     if (i != n - 1) printf("%d ", arr[i]);
    //     else printf("%d\n", arr[i]);
    // }
    // for (int i = n - 1; i >= 0; i--)
    // {
    //     if (i != 0) printf("%d ", arr[i]);
    //     else printf("%d\n", arr[i]);
    // }

    // C++实现

    int n;
    cin >> n;
    int arr[M];
    for (int i = 0; i < n; i++) cin >> arr[i];
    sort(arr, arr + n); // 默认升序排列
    // " \n"[i == n - 1]  相当于两个字符 ' ' 和 '\n' [i == n - 1] 表示取下标   相等取 1 不相等取 0
    for (int i = 0; i < n; i++) cout << arr[i] << " \n"[i == n - 1];
    for (int i = n - 1; i >= 0; i--) cout << arr[i] << " \n"[i == 0];

    return 0;
}
